﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL;

public partial class master_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string susuario_id = Request.QueryString["iUsuario_id"]; ;
            int idUsuario = Convert.ToInt32(susuario_id);
            ModPersona mp = new ModPersona();
            if (idUsuario != 0)
            {
                Tbl_Usuarios usuarioActual = mp.getUsuario(idUsuario);
                if (usuarioActual != null)
                {
                    txtUser.Text = usuarioActual.sNombreUsuario;
                    txtPasswd.Value = usuarioActual.sPassword;
                    txtPasswd.Attributes["type"] = "password";
                    usuario_id.Value = usuarioActual.iUsuario_id+"";
                    usuario_concurrencia.Value = usuarioActual.iConcurrencia+"";
                    usuario_estado.Value = usuarioActual.iEstado_fl + "";
                    comboRol.DataSource = mp.listAllroles();Tbl_Roles rol = new Tbl_Roles();
                    comboRol.DataValueField = "iRol_id";
                    comboRol.DataTextField = "sNombre";
                    comboRol.DataBind();
                    comboRol.Items.FindByValue(usuarioActual.iRol_id + "").Selected = true;
                    List<Tbl_Personas> listPersonal = mp.listpersonasinUsuario();
                    Tbl_Personas personaActual = mp.getPersona(usuarioActual.iPersona_id);
                    listPersonal.Add(personaActual);
                    comboPersonal.DataSource = formattedPersonal(listPersonal);
                    comboPersonal.DataValueField = "iPersona_id";
                    comboPersonal.DataTextField = "sNombre";
                    comboPersonal.DataBind();
                    comboPersonal.Items.FindByValue(usuarioActual.iPersona_id+"").Selected = true;
                }
            }
            else
            {
                usuario_id.Value = "0";
                comboRol.DataSource = mp.listAllroles(); Tbl_Roles rol = new Tbl_Roles();
                comboRol.DataValueField = "iRol_id";
                comboRol.DataTextField = "sNombre";
                comboRol.DataBind();
                comboPersonal.DataSource = formattedPersonal(mp.listpersonasinUsuario());
                comboPersonal.DataValueField = "iPersona_id";
                comboPersonal.DataTextField = "sNombre";
                comboPersonal.DataBind();
            }
        }
    }

    public List<Tbl_Personas> formattedPersonal(List<Tbl_Personas> lista)
    {
        List<Tbl_Personas> list = new List<Tbl_Personas>();
        foreach (Tbl_Personas persona in lista)
        {
            Tbl_Personas p = new Tbl_Personas();
            p.iPersona_id = persona.iPersona_id;
            p.sNombre = persona.sNombre + " " + persona.sApellido_paterno + " " + persona.sApellido_Materno;
            list.Add(p);
        }
        return list;
    }

    protected void btnSave_Click(object sender, EventArgs e)
    {
        int idUsuario = Convert.ToInt32(usuario_id.Value);
        ModPersona modpersona = new ModPersona();
        if (idUsuario != 0)
        {
            Tbl_Usuarios usuarioActual = new Tbl_Usuarios();
            usuarioActual.sNombreUsuario = txtUser.Text;

            if(txtPasswd.Value.Trim().Length > 0){
                usuarioActual.sPassword = txtPasswd.Value;
                //save Passwd
            }
            usuarioActual.iUsuario_id = Convert.ToInt32(usuario_id.Value);
            usuarioActual.iRol_id = Convert.ToInt32(comboRol.SelectedValue);
            usuarioActual.iPersona_id = Convert.ToInt32(comboPersonal.SelectedValue);
            usuarioActual.iConcurrencia = Convert.ToInt32(usuario_concurrencia.Value);
            usuarioActual.iEstado_fl = Convert.ToBoolean(usuario_estado.Value);
            modpersona.updateUsuario(usuarioActual);
        }
        else
        {
            Tbl_Usuarios usuarioActual = new Tbl_Usuarios();
            usuarioActual.sNombreUsuario = txtUser.Text;
            usuarioActual.sPassword = txtPasswd.Value;
            usuarioActual.iUsuario_id = Convert.ToInt32(usuario_id.Value);
            usuarioActual.iRol_id = Convert.ToInt32(comboRol.SelectedValue);
            usuarioActual.iPersona_id = Convert.ToInt32(comboPersonal.SelectedValue);
            usuarioActual.iConcurrencia = 1;
            usuarioActual.iEstado_fl = true;
            modpersona.insertUsuario(usuarioActual);
        }
        Response.Redirect("UsuarioList.aspx");
    }
    protected void btnCancel_Click(object sender, EventArgs e)
    {
        Response.Redirect("UsuarioList.aspx");
    }
}